package app.champaign;

/**
 * 给定一个二叉树，找出其最大深度。
 * 
 * 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
 * 
 * 说明: 叶子节点是指没有子节点的节点。
 * 示例：
给定二叉树 [3,9,20,null,null,15,7]，

        3
    / \
    9  20
        /  \
    15   7
    返回它的最大深度 3 。
 */
public class L104_MaximumDepthofBinaryTree{

    public static void main(String[] args) {
        
    }

    /**
     * DFS深度优先搜索
     * @param root
     * @return
     */
    public static int maxDepth1(TreeNode root) {

        //corner case
        if(root == null) return 0;
        int leftHeight = maxDepth1(root.left);
        int rightHeight = maxDepth1(root.right);
        
        return Math.max(leftHeight, rightHeight) + 1;
    }



}